/* 
 * File:   Hero.h
 * Author: Potential
 *
 * Created on September 2, 2013, 4:04 PM
 */

#ifndef HERO_H
#define	HERO_H

#include <string>

using namespace std;

class Hero
{
    
    
public:
    Hero();
    ~Hero();
    
    void setName();
    string getName() {return name;}
    
    void setCurHealth(int);
    int getCurHealth() {return curHealth;}
    
    void setMaxHealth();
    int getMaxHealth() {return maxHealth;}
    
    void setMinDamage();
    int getMinDamage() {return minDamage;}
    
    void setMaxDamage();
    int getMaxDamage() {return maxDamage;}
    
    void setArmor();
    int getArmor() {return armor;}
    
    void setCriticalStrike();
    bool getCriticalStrike() {return criticalStrike;}
    
    double getCriticalStrikeMultiplier() {return criticalStrikeMultiplier;}
    
    int getDamage();

    void displayStats();
    void resetHealth();
    
    void difficultySelection();
    
private:
    
    bool validDifficultySelection(int);
    
    string name;
    
    bool criticalStrike;
    
    int curHealth;
    int maxHealth;
    int startingHealth;
    
    int minDamage;
    int startingMinDamage;
    
    int maxDamage;
    int startingMaxDamage;
    
    int armor;
    int startingArmor;
    
    int criticalStrikeChance;
    const double criticalStrikeMultiplier = 1.5;
    
    
};


#endif	/* HERO_H */

